Nanodegree key: nd1309
Version: 3.0.0
Locale: en-us
In this program, you'll work with the Bitcoin and Ethereum protocols, build projects for real-world application, and gain the essential skills for a career in this dynamic space.
Content
Part 01 : Welcome to the Blockchain Revolution
-
Module 01: Welcome to the Blockchain Revolution
-
Lesson 01: Welcome to the Blockchain Revolution
In this lesson you are introduced to the Blockchain Revolution and get an overview of the Blockchain Developer Nanodegree program.
- Concept 01: Welcome to the Nanodegree Program
- Concept 02: Why Blockchain?
- Concept 03: Meet Your Instructors
- Concept 04: Influence of Blockchain
- Concept 05: Blockchain Overview
- Concept 06: Program Overview
- Concept 07: Introduction to Workspaces
- Concept 08: Practice Using a Workspace
- Concept 09: Blockchain Motivation
- Concept 10: Tell us About Yourself
- Concept 11: Looking Ahead
-
Lesson 02: Nanodegree Career Services
The Careers team at Udacity is here to help you move forward in your career - whether it's finding a new job, exploring a new career path, or applying new skills to your current job.
-
-
Module 02: Career Support
-
Lesson 01: Get Help with Your Account
What to do if you have questions about your account or general questions about the program.
-
Lesson 02: Knowledge, Community, and Careers
You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.
-
Part 02 : Blockchain Fundamentals
-
Module 01: Blockchain Fundamentals
-
Lesson 01: Blockchain Basics
In this lesson, you learn the basics of Blockchain are introduced to topics like Bitcoin to begin creating your very own bitcoin identity.
- Concept 01: Lesson Introduction
- Concept 02: Interview: Blockchain Fundamentals
- Concept 03: Financial Transactions
- Concept 04: Introduction to Bitcoin
- Concept 05: Hashing
- Concept 06: Practice Hashing
- Concept 07: Blocks
- Concept 08: Practice Block
- Concept 09: Blockchain
- Concept 10: Distributed Peer-to-Peer Network
- Concept 11: Memory Pool
- Concept 12: Consensus
- Concept 13: Proof of Work
- Concept 14: Proof of Stake
- Concept 15: Delegated Byzantine Fault Tolerance
- Concept 16: Other Consensus Models
- Concept 17: Recap of Achieving Consensus
- Concept 18: Interview: Blockchain Fundamentals
- Concept 19: Lesson Recap
-
Lesson 02: Managing Blockchain Transactions
Identify various wallet types, private/public key generation between non-deterministic, sequential deterministic, and hierarchical deterministic wallets.
- Concept 01: Lesson Introduction
- Concept 02: Interview: Blockchain Identity
- Concept 03: Blockchain Identity
- Concept 04: Wallet Overview
- Concept 05: Wallet Types
- Concept 06: Private Keys
- Concept 07: Get Your Own Wallet
- Concept 08: Restoring Blockchain Identity
- Concept 09: Sign a Transaction
- Concept 10: Blockchain Transaction Lifecycle
- Concept 11: Interview: Blockchain Identity
-
Lesson 03: Bitcoin Core Testnet
Learn the benefits of utilizing the Bitcoin Core testnet. Also, understand the difference between the public testnet and regression testing.
- Concept 01: Lesson Introduction
- Concept 02: Bitcoin Core Motivation
- Concept 03: Bitcoin Core - Overview
- Concept 04: Bitcoin Core - Networks
- Concept 05: Mainnet vs Testnet
- Concept 06: Testnet vs Regression Testing
- Concept 07: Data Warnings and Bitcoin.config Setup
- Concept 08: Bitcoin Core - Getting Started
- Concept 09: Bitcoin Core - Wallet Overview
- Concept 10: Bitcoin Core - Network Demonstration
- Concept 11: Get Testnet Coins
- Concept 12: Testnet Wallet Transactions
- Concept 13: Testnet Wallet Transactions - Bitcoin Core v0.17:
- Concept 14: Block Explorer
- Concept 15: End of Lesson Motivation
- Concept 16: Lesson Recap
-
Lesson 04: Blockchain Data
Learn the relationship between the transaction lifecycle using Bitcoin core focusing on the bounders with embedding data.
- Concept 01: Lesson Overview
- Concept 02: Blockchain Data Motivation
- Concept 03: Blockchain Data Models Overview
- Concept 04: Transactions - Inputs and Outputs
- Concept 05: Transaction Data Models
- Concept 06: Bitcoin Scripts
- Concept 07: Script Opcodes
- Concept 08: Opcodes
- Concept 09: Attributes of Script
- Concept 10: Raw Transaction Review
- Concept 11: Create Raw Transaction Motivation
- Concept 12: Setup for Creating a Transaction
- Concept 13: Create a Transaction: Step 1
- Concept 14: Create a Transaction: Step 2
- Concept 15: Create a Transaction: Step 3
- Concept 16: Create a Transaction: Step 4
- Concept 17: Create a Transaction: Step 5
- Concept 18: Create a Transaction: Step 6
- Concept 19: Create a Transaction: Step 7
- Concept 20: Embedding Data in Transactions
- Concept 21: Embedding Data in Bitcoin Core
- Concept 22: Ethics of Embedding Data
- Concept 23: Lesson Summary and Project Prep Overview
-
Lesson 05: Private Blockchains
Learn how to interact between private/public Blockchains and apply the Blockchain data model to create your own private Blockchain.
- Concept 01: Lesson Introduction
- Concept 02: Public and Private Blockchains
- Concept 03: Public and Private Blockchain Interaction
- Concept 04: Build a Simple Private Blockchain
- Concept 05: Working with Your Workspace
- Concept 06: Block Data Model
- Concept 07: Create New Blocks
- Concept 08: Store Blocks
- Concept 09: Link Blocks
- Concept 10: Block Height and Timestamp
- Concept 11: Lesson Recap
-
Lesson 06: Digital Assets on Blockchain
Work with digital assets programmatically using your terminal and javascript.
- Concept 01: Lesson Overview
- Concept 02: Digital Assets
- Concept 03: Encode and Decode Basics
- Concept 04: Encode and Decode from Terminal
- Concept 05: Encode and Decode with Node.js
- Concept 06: Proof of Existence
- Concept 07: Interview: Proof of Existence
- Concept 08: Securing Assets Using Your Digital Identity
- Concept 09: Web Service with Blockchain Considerations
- Concept 10: Planning Web Services with Our Private Blockchain
- Concept 11: RESTful APIs with Node.js Frameworks
- Concept 12: Express.js
- Concept 13: Blockchain Generations
- Concept 14: Lesson Recap
-
Lesson 07: [New] Create Your Own Private Blockchain
Building your own Private Blockchain utilizing Node.js.
-
Part 03 : Ethereum Smart Contracts, Tokens and Dapps
-
Module 01: Ethereum Smart Contracts, Tokens and Dapps
-
Lesson 01: Ethereum Fundamentals and Development Tools
Learn the basics of Ethereum, its tooling, developer ecosystem, and create your first decentralized application!
- Concept 01: Lesson Introduction
- Concept 02: Ethereum Basics
- Concept 03: What makes Ethereum Special?
- Concept 04: Ethereum Tools and Community
- Concept 05: Introduction to DApps
- Concept 06: Scan the Ethereum Network
- Concept 07: Deploy to the Test Network
- Concept 08: Prepare to Connect to the Network
- Concept 09: Connect to the Ethereum Network
- Concept 10: Investigate Ethereum Accounts
- Concept 11: Create a Local Blockchain
- Concept 12: Connect to Your Local Ethereum Blockchains
- Concept 13: Create Ethereum Transactions
- Concept 14: Ethereum Gas and Fees
- Concept 15: Explore Ethereum Metrics
- Concept 16: First Dapp Revisited
- Concept 17: Ethereum Secret Messenger
- Concept 18: Improved Deployment Process
- Concept 19: DApps Next Steps
- Concept 20: Optional: Full Ethereum Nodes
- Concept 21: Lesson Recap
-
Lesson 02: Smart Contracts with Solidity
Learn the basics of the Solidity language which used to write smart contracts. Then put it all together to create your very own token!
- Concept 01: Let's Write Smart Contracts
- Concept 02: Smart Contracts and Solidity Introduction
- Concept 03: Remix Online Tool
- Concept 04: Memory Management in Solidity
- Concept 05: Elementary Data Types in Solidity
- Concept 06: Type Conversion in Solidity
- Concept 07: Complex Data Types
- Concept 08: Arrays
- Concept 09: String and Bytes Types
- Concept 10: Mappings
- Concept 11: Enums
- Concept 12: Structs
- Concept 13: Solidity Global Variables and Ether Units
- Concept 14: Functions in Solidity
- Concept 15: Error Handling in Solidity
- Concept 16: Inheritance in Solidity
- Concept 17: Events in Solidity
- Concept 18: What are Tokens?
- Concept 19: ERC Token Standards
- Concept 20: ERC-20 Walk-through
- Concept 21: Creating ERC-20 using Remix
- Concept 22: Creating ERC-20 using OpenZeppelin
- Concept 23: Mini Project: Send your ERC-20 Tokens to Udacity
- Concept 24: Congratulations on Learning Solidity
-
Lesson 03: Ethereum DAPP
Create DAPPs using all the Tools learnt so far
- Concept 01: Welcome to Creating Dapps
- Concept 02: Tools Required to finish this Lesson
- Concept 03: Star Notary Smart Contract Version 1 (Non-tokenized)
- Concept 04: Tests with Mocha and Chai
- Concept 05: Write Smart Contracts in Truffle project
- Concept 06: Writing testing cases
- Concept 07: Creating the Front End: Part 1
- Concept 08: Creating the Front End: Part 2
- Concept 09: Running your DAPP (Version 1)
- Concept 10: Congratulations on Creating DAPP version 1
- Concept 11: Let's Tokenize the Star Notary Contract
- Concept 12: Walkthrough of ERC-721 standard
- Concept 13: Creating the StarNotary (Version 2)
- Concept 14: Creating the Smart Contract StarNotary (Version 2)
- Concept 15: Writing Test Cases StarNotary (Version 2)
- Concept 16: Creating the Front End - Part 1
- Concept 17: Creating the Front End - Part 2
- Concept 18: Running your DAPP version 2
- Concept 19: Congratulations on Creating DAPP (Version 2)
-
Lesson 04: Decentralized Star Notary Service Project
For your next project, you will create a DApp by adding functionality with your smart contract and deploy it on the public testnet.
-
Part 04 : Blockchain Architecture
-
Module 01: Blockchain Architecture
-
Lesson 01: Intro to Supply Chain
Get a high-level overview on how blockchain fits into supply chain management.
-
Lesson 02: Planning Blockchain Solutions
Learn to design blockchain solution for multiparty using UML.
- Concept 01: Lesson Intro
- Concept 02: Architecture Overview - Part 1
- Concept 03: Architecture Overview - Part 2
- Concept 04: Planning Overview
- Concept 05: UML
- Concept 06: Activity Diagram
- Concept 07: Sequence Diagram
- Concept 08: State Diagram
- Concept 09: Data Modeling
- Concept 10: Layering Services Decisions
- Concept 11: Lesson Recap
-
Lesson 03: Supply Chains with Smart Contracts
Learn to build smart contract solution for supply chain using lemonade stand as an example.
- Concept 01: Lesson Introduction
- Concept 02: Diagram a Basic Supply Chain
- Concept 03: Smart Contract Structure
- Concept 04: Setup, Variables, Mappings, and Structs
- Concept 05: Events and States
- Concept 06: Modifiers
- Concept 07: Functions: Constructor + Add Item
- Concept 08: Function: Buy Item
- Concept 09: Function: Fetch Item
- Concept 10: Remix Demonstration
- Concept 11: Challenge: Extend the Supply Chain
- Concept 12: Solution: Extending the Supply Chain
- Concept 13: Challenge: Give a Refund
- Concept 14: Solution: Give a Refund
- Concept 15: Lesson Recap
-
Lesson 04: Blockchain Privacy
Learn and implement different techniques to ensure privacy of blockchain transactions such as merkle trees, zero-knowledge proofs.
- Concept 01: Introducing Aaron Brown & MadHive
- Concept 02: Lesson Intro
- Concept 03: Hashing
- Concept 04: Hashing: Code Example
- Concept 05: Merkle Trees
- Concept 06: Merkle Trees: Code Example
- Concept 07: Ring Signatures
- Concept 08: Ring Signatures: Code Example
- Concept 09: Intro to Zero Knowledge Proofs - Part 1
- Concept 10: ZK-SNARKs: What are they?
- Concept 11: Differential Privacy
- Concept 12: Differential Privacy: Code Example
- Concept 13: Recap and Note about Scaling
-
Lesson 05: Smart Contract Security
Learn about recent security attacks, how to avoid common vulnerability and write secure smart contract code.
- Concept 01: Lesson Intro
- Concept 02: The DAO Attack
- Concept 03: Identify the Vulnerability
- Concept 04: Hack the Contract
- Concept 05: Prevent the Hack
- Concept 06: Final Code
- Concept 07: The Parity Attack
- Concept 08: The Parity Attack Solution
- Concept 09: Solidity Security Considerations
- Concept 10: Consensys: Smart Contract Best Practices
- Concept 11: Whitepapers and Research
- Concept 12: Tooling
- Concept 13: Open Zeppelin
- Concept 14: Security Audits
- Concept 15: When Helping Goes Wrong
- Concept 16: Lesson Recap
-
Lesson 06: Distributed File System
Learn to create your own website and Dapp on new distributed files system which protocol and network designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia.
- Concept 01: Lesson Introduction
- Concept 02: Decentralized Storage vs HTTP
- Concept 03: IPFS Overview
- Concept 04: Get Started with IPFS
- Concept 05: IPFS Text
- Concept 06: IPFS Media
- Concept 07: IPFS HTML
- Concept 08: IPFS Personal Website
- Concept 09: IPFS Resources and Community
- Concept 10: Dapp Challenge: Pet Shop App
- Concept 11: Lesson Recap
-
Lesson 07: Ethereum Dapp for Tracking Items through Supply Chain
Learn lower level components of establishing a sound web service architecture using Blockchain.
Project Description - Ethereum Dapp for Tracking Items through Supply Chain
Project Rubric - Ethereum Dapp for Tracking Items through Supply Chain
- Concept 01: Moving On
- Concept 02: Part 1: Plan the project with write-ups
- Concept 03: Part 2: Write smart contracts
- Concept 04: Part 3: Test smart contract code coverage
- Concept 05: Part 4: Deploy smart contracts on public test network
- Concept 06: Part 5: Modify client code to interact with smart contracts
- Concept 07: Optional: Implement Infura to store product image
-
Part 05 : Career Services
These Career Services will ensure you make meaningful connections with industry professionals to accelerate your career growth - whether looking for a job or opportunities to collaborate with your peers. Unlike your Nanodegree projects, you do not need to meet specifications on these Services to progress in your program. Submit these Career Services once, and get honest, personalized feedback and next steps from Udacity Career Coaches!
-
Module 01: Career Services
-
Lesson 01: Take 30 Min to Improve your LinkedIn
Find your next job or connect with industry peers on LinkedIn. Ensure your profile attracts relevant leads that will grow your professional network.
- Concept 01: Get Opportunities with LinkedIn
- Concept 02: Use Your Story to Stand Out
- Concept 03: Why Use an Elevator Pitch
- Concept 04: Create Your Elevator Pitch
- Concept 05: Use Your Elevator Pitch on LinkedIn
- Concept 06: Create Your Profile With SEO In Mind
- Concept 07: Profile Essentials
- Concept 08: Work Experiences & Accomplishments
- Concept 09: Build and Strengthen Your Network
- Concept 10: Reaching Out on LinkedIn
- Concept 11: Boost Your Visibility
- Concept 12: Up Next
-
Lesson 02: Optimize Your GitHub Profile
Other professionals are collaborating on GitHub and growing their network. Submit your profile to ensure your profile is on par with leaders in your field.
- Concept 01: Prove Your Skills With GitHub
- Concept 02: Introduction
- Concept 03: GitHub profile important items
- Concept 04: Good GitHub repository
- Concept 05: Interview with Art - Part 1
- Concept 06: Identify fixes for example “bad” profile
- Concept 07: Quick Fixes #1
- Concept 08: Quick Fixes #2
- Concept 09: Writing READMEs with Walter
- Concept 10: Interview with Art - Part 2
- Concept 11: Commit messages best practices
- Concept 12: Reflect on your commit messages
- Concept 13: Participating in open source projects
- Concept 14: Interview with Art - Part 3
- Concept 15: Participating in open source projects 2
- Concept 16: Starring interesting repositories
- Concept 17: Next Steps
-
Part 06 : Dapp with autonomous smart contracts and oracles
-
Module 01: Advanced Blockchain Concepts and Oracles
-
Lesson 01: Welcome
Welcome to the course! In this lesson, you'll get an over of the course material, clone the project repository, and ensure that your development environment is set up correctly.
-
Lesson 02: Stop Loss
In this lesson, you'll learn about stopping loss. You'll learn to pause a Smart Contract and the benefits it brings. You'll also learn about multi-party consensus and how it protects contract data.
-
Lesson 03: Receive, Transfer, and Send Funds
In this course, you'll learn the fundamentals of making payments. You'll learn to use the SafeMath library, how protecting payments work, and learn the best practices for security.
- Concept 01: Introduction
- Concept 02: Ether and Payment Fundamentals
- Concept 03: Working With Funds
- Concept 04: SafeMath Library
- Concept 05: Payment Protection Patterns
- Concept 06: Exercise 1: Checks - Effects - Interaction
- Concept 07: Rate Limiting
- Concept 08: Re-entrancy Guard
- Concept 09: Security Best Practices
- Concept 10: Lesson Summary
-
Lesson 04: Smart Contract Upgradability
Learn the scenarios where a Smart Contract needs to be upgraded, solutions for handling Smart Contract upgrades, how to separate data and application contracts, and securing calls between the two.
-
Lesson 05: Data from Oracles
Discover what an oracle is, identify when an oracle is needed, learn the difference between a trusted oracle and a trustless oracle, and create contracts that send and receive data from an oracle.
-
Lesson 06: Dapp UX
Creating a user-friendly Dapp isn't easy. In this lesson, we'll go over ways to develop Dapps with great user experiences as well as develop blockchain, Dapp, and server code using modern techniques.
- Concept 01: Introduction
- Concept 02: Waiting - Best Practice
- Concept 03: Impact - Best Practice
- Concept 04: Cost - Best Practice
- Concept 05: Events - Best Practice
- Concept 06: Provenance - Best Practice
- Concept 07: Addresses - Best Practice
- Concept 08: History - Best Practice
- Concept 09: Context - Best Practice
- Concept 10: Privacy - Best Practice
- Concept 11: Affordance - Best Practice
-
Lesson 07: Flight Surety Project
Dive into the Flight Surety Project to get a top-down look at what's in store for you with the project, learn about the project's requirements, and finish with a tour of the starter code.
-
Part 07 : Capstone
-
Module 01: Capstone
-
Lesson 01: Capstone: Real Estate Marketplace
Apply your knowledge to build a decentralized housing project.
-